//#include <iostream>
//
//int Gcd(int x, int y)
//{
//    if (y == 0) return x;
//    return Gcd(y, x % y);
//}
//
//int main()
//{
//    int A, B;
//    std::cin >> A >> B;
//    std::cout << A * B / Gcd(A, B) << std::endl;
//    return 0;
//}



//int main()
//{
//    string str, ret;
//    cin >> str;
//    int n = str.size();
//    for (int i = 1; i <= n; i++)
//    {
//        ret += str[i - 1];
//        if ((n - i) % 3 == 0 && i != n) ret += ',';
//    }
//    cout << ret << endl;
//    return 0;
//}




//int main()
//{
//    int n; cin >> n;
//    if (n == 0)
//    {
//        cout << 0 << endl;
//        return 0;
//    }
//
//    int a, b, c; a = b = 1;
//    for (int i = 2; i <= n; i++)
//    {
//        c = a + b;
//        a = b, b = c;
//    }
//    cout << b << endl;
//    return 0;
//}




//class Solution {
//public:
//    bool IsContinuous(vector<int>& numbers) {
//        sort(numbers.begin(), numbers.end());
//        int minNum = 20, maxNum = 0;
//        bool hash[15] = { 0 };
//        for (auto x : numbers)
//        {
//            if (x)
//            {
//                if (hash[x]) return false;
//                hash[x] = true;
//                if (x < minNum) minNum = x;
//                if (x > maxNum) maxNum = x;
//            }
//
//        }
//        return (maxNum - minNum + 1) <= 5;
//    }
//};





//class Solution {
//public:
//    int getLongestPalindrome(string A) {
//        int ret = 1, n = A.size();
//        for (int i = 0; i < n; i++)
//        {
//            int len = 1;
//            int left = i, right = i;
//            while (left - 1 >= 0 && right + 1 < n && A[left - 1] == A[right + 1]) left--, right++;
//            ret = max(ret, right - left + 1);
//
//            if (A[i] == A[i - 1])
//            {
//                left = i - 1, right = i;
//                while (left - 1 >= 0 && right + 1 < n && A[left - 1] == A[right + 1]) left--, right++;
//                ret = max(ret, right - left + 1);
//            }
//        }
//        return ret;
//    }
//};




//#include <iostream>
//using namespace std;
//const int N = 1e5 + 10;
//int n;
//int arr[N];
//int main()
//{
//	cin >> n;
//	for (int i = 0; i < n; i++) cin >> arr[i];
//	int ret = 0, prevMin = arr[0];
//	for (int i = 1; i < n; i++)
//	{
//		prevMin = min(arr[i], prevMin);
//		ret = max(ret, arr[i] - prevMin);
//	}
//	cout << ret << endl;
//	return 0;
//}




//#include <iostream>
//using namespace std;
//int n, m, x, y;
//long long dp[25][25];
//int main()
//{
//	cin >> n >> m >> x >> y;
//
//	x += 1; y += 1;
//	dp[0][1] = 1;
//	for (int i = 1; i <= n + 1; i++)
//	{
//		for (int j = 1; j <= m + 1; j++)
//		{
//			if (i != x && j != y && abs(i - x) + abs(j - y) == 3 || (i == x &&
//				j == y))
//			{
//				dp[i][j] = 0;
//			}
//			else
//			{
//				dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
//			}
//		}
//	}
//	cout << dp[n + 1][m + 1] << endl;
//	return 0;
//}



using namespace std;
long long n, m, a, b;
int main()
{
	cin >> n >> m >> a >> b;

	long long ret = 0;
	for (long long x = 0; x <= min(n / 2, m); x++) 
		long long y = min(n - x * 2, (m - x) / 2); /
}

cout << ret << endl;

return 0;
}